package com.xyoto.takeawayBusiness.utils;

import com.xyoto.takeawayBusiness.entity.Orders;

import java.io.IOException;

/**
 * 微信支付接口
 * @author Administrator
 */
public interface WechatPay {
    /**
     * 调用JSAPI进行生成预订单
     * @param orders 订单实体
     * @param openid
     * @return
     */
    String advanceOrderByJSAPI(Orders orders, String openid) throws Exception;

    /**
     * 根据订单id查询订单支付
     * @param orderId 订单id
     * @return
     */
    String getOrderStatusByJSAPI(String orderId) throws Exception;

    /**
     * 根据订单id关闭订单
     * @param orderId 订单id
     * @return
     */
    String closeOrderByJSAPI(String orderId) throws Exception;

    /**
     * 通过公钥进行加密
     * @param text 需要加密的文本
     * @return
     */
    String encryptForPrivate(String text);

    /**
     * 通过私钥进行解密
     * @param text 需要解密的文本
     * @return
     */
    String decryptForPublic(String text);

    /**
     * 根据订单提交微信退款
     * @param orders 订单实体
     * @return
     */
    String refundOrderByJSAPI(Orders orders) throws IOException;

}
